package com.yuw.hw20190418;

import org.junit.Test;

public class TestDriver {
	
	/**
	 * 在使用new调用子类的构造方法创建实例对象时，如果子类调用的父类的构造方法中又调用了父类中被子类重写的方法，
	 * 虽然是在父类的构造方法之中进行的调用，但是执行时实际调用的方法还是子类重写之后的方法；
	 */
	
	
	@Test
	public void test01() {
		Base b = new Derived();
		System.out.print(b.i);
		b.amethod();
		
		System.out.println("\n===============");
	}
	
	@Test
	public void test02() {
		Derived b = new Derived();
		System.out.print(b.i);
		b.amethod();
		System.out.println("\n===============");
	}
	
	@Test
	public void test03() {
		Base b = new Base();
		System.out.print(b.i);
		b.amethod();
		System.out.println("\n===============");
	}
}
